package com.ruoyi.business.utils;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

/**
 * 编号生成器
 * @Author Alan Zhang
 * @Date 2025/6/5 9:31
 */
public class SnGenerateUtil {
    // 定义日期格式
    private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMddHHmmss");
    private static final DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("MMddHHmmssSSS");

    /**
     * 协议编号
     * @return
     */
    public static String jtProtocolNumber(){
        //根据当前时间获取yyMMdd格式的时间字符串
        String format = LocalDateTime.now().format(formatter);
        String number = "JT" + format;
        return number;
    }
    /**
     * 采购单号
     * @return
     */
    public static String purchaseOrderNumber(){
        //根据当前时间获取yyMMdd格式的时间字符串
        String format = LocalDateTime.now().format(formatter2);
        return "P"+format;
    }
    /**
     * 库存盘点单号
     * @return
     */
    public static String stocktakingOrderNumber(){
        //根据当前时间获取yyMMdd格式的时间字符串
        String format = LocalDateTime.now().format(formatter2);
        return "S"+format;
    }

    /**
     * 入库单号
     * @return
     */
    public static String inboundOrderNumber(){
        //根据当前时间获取yyMMdd格式的时间字符串
        String format = LocalDateTime.now().format(formatter2);
        return "IB"+format;
    }


    /**
     * 出库单号
     * @return
     */
    public static String outboundOrderNumber(){
        //根据当前时间获取yyMMdd格式的时间字符串
        String format = LocalDateTime.now().format(formatter2);
        return "OB"+format;
    }


    public static String generatePaymentNumber() {
        // 生成一个UUID
        UUID uuid = UUID.randomUUID();
        // 取UUID的后几位作为随机部分
        String randomPart = uuid.toString().replace("-", "");
        // 拼接时间戳和随机部分
        return randomPart;
    }
}
